#ifndef LIST_H
#define LIST_H

typedef struct single_link_list{
    int data;
    struct single_link_list *next;
 }sllnode,*slink;

int sll_insert_by_location(slink *list, int i, int data);
int sll_delete_by_location(slink *list, int i);
sllnode *sll_find_node_by_location(slink *list, int i);
sllnode *sll_find_node_by_data(slink *list, int data, int *location);
int sll_length_of_list(slink *list);

typedef struct double_link_list{
    int data;
    struct double_link_list *prior;
    struct double_link_list *next;
}dllnode,*dlink; 

int dll_length_of_list(dlink *list);
dllnode *dll_find_node_by_data(dlink *list, int data, int *loc);
dllnode *dll_find_node_by_location(dlink *list, int loc);
int dll_delete_by_location(dlink *list, int loc);
int dll_insert_by_location(dlink *list, int loc, int data);

#endif